//
//  MZTask.swift
//  MZTool
//
//  Created by gby on 2023/2/6.
//

import Foundation

public enum MZTask {
    
    case requestPlain
    
    case requestData(Data)
    
    case requestJSONEncodable(Encodable)

    case requestCustomJSONEncodable(Encodable, encoder: JSONEncoder)
    
    case requestParameter(parameters: [String: Any], encoding: MZParameterEncoding)
    
    case requestCompositeData(bodyData: Data, urlParameters: [String: Any])
    
    case requestCompositeParameters(bodyParameters: [String: Any], bodyEncoding: MZParameterEncoding, urlParameters: [String: Any])
    
    case uploadFile(URL)

    case uploadMultipart([MZMultipartFormData])

    case uploadCompositeMultipart([MZMultipartFormData], urlParameters: [String: Any])

    case downloadDestination(MZDownloadDestination)

    case downloadParameters(parameters: [String: Any], encoding: MZParameterEncoding, destination: MZDownloadDestination)
}


